package com.smart.service;

import java.util.List;
import com.smart.vo.RouterVo;
import com.smart.vo.TreeSelect;
import com.smart.entity.SysMenu;

public interface MenuService extends BaseService<SysMenu,Long>{

	/**
	 * @param userId
	 * @return
	 **/
	List<SysMenu> selectMenuList(Long userId);
	
	/**
	 * @return 根据用户id获取菜单树
	 **/
	List<SysMenu> selectMenuTreeByUserId(Long userId);
	/**
     * 根据用户查询系统菜单列表
     * @param menu   菜单信息
     * @param userId 用户ID
     * @return 菜单列表
     **/
    List<SysMenu> selectMenuList(SysMenu menu,Long userId);
	/**
     * 构建前端路由所需要的菜单
     * @param menus 菜单列表
     * @return 路由列表
     **/
    List<RouterVo> buildMenus(List<SysMenu> menus);
	
    /**
     * 构建前端所需要下拉树结构
     * @param menus 菜单列表
     * @return 下拉树结构列表
     **/
    List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus);
    
    /**
     * 新增保存菜单信息
     * @param menu
     * @return
     **/
    int create(SysMenu menu);
    
    /**
     * 根据角色ID查询菜单树信息
     * @param roleId 角色ID
     * @return 选中菜单列表
     **/
    List<Integer> selectMenuListByRoleId(Long roleId);
    
}